/*
 * MKT:@(#) 64908-19006 A.03.51 68332 C CROSS COMPILER                   13Sep91                      
 * @(SUBID):$Source: /vsrc/vireo/include/RCS/string.h,v $ $Revision: 2.2 $
 */

#ifndef _STRING_INCLUDED_

#define _STRING_INCLUDED_	1

#include <stddef.h> 		/* Get the definitions for size_t and NULL */

/*
 * Alias the function names so that users of the compiler front-end can
 * use the -l option and still have access to the library functions.
 */
#pragma ALIAS	memcpy	_memcpy
#pragma ALIAS	memmove	_memmove
#pragma ALIAS	memchr	_memchr
#pragma ALIAS	memset	_memset
#pragma ALIAS	strncpy	_strncpy
#pragma ALIAS	strcat	_strcat
#pragma ALIAS	strncat	_strncat
#pragma ALIAS	strchr	_strchr
#pragma ALIAS	strpbrk	_strpbrk
#pragma ALIAS	strrchr	_strrchr
#pragma ALIAS	strstr	_strstr
#pragma ALIAS	strtok	_strtok
#pragma ALIAS	strerror	_strerror
#pragma ALIAS	memcmp	_memcmp
#pragma ALIAS	strcoll	_strcoll
#pragma ALIAS	strncmp	_strncmp
#pragma ALIAS	strcspn	_strcspn
#pragma ALIAS	strspn	_strspn
#pragma ALIAS	strxfrm	_strxfrm

/*
 *	The following defines are used so that the compiler can do
 * in-line substitution for these functions.  When the compiler sees
 * the special function (_SF_) name, it knows that this is the system
 * version of the function rather than the user's version of a
 * function.  Therefore it is free to in-line substitute the function.
 */
#pragma	ALIAS	_SF_strcmp	_strcmp
#pragma	ALIAS	_SF_strcpy	_strcpy
#pragma	ALIAS	_SF_strlen	_strlen

#define	strcmp	_SF_strcmp
#define	strcpy	_SF_strcpy
#define	strlen	_SF_strlen

#pragma SECTION PROG=libc

extern void	*memcpy(void *s1, const void *s2, size_t n),
		*memmove(void *s1, const void *s2, size_t n),
		*memchr(const void *s, int c, size_t n),
		*memset(void *s, int c, size_t n);
extern char	*strcpy(char *s1, const char *s2),
		*strncpy(char *s1, const char *s2, size_t n),
		*strcat(char *s1, const char *s2),
		*strncat(char *s1, const char *s2, size_t n),
		*strchr(const char *s, int c),
		*strpbrk(const char *s1, const char *s2),
		*strrchr(const char *s, int c),
		*strstr(const char *s1, const char *s2),
		*strtok(char *s1, const char *s2),
		*strerror(int errnum);
extern int	memcmp(const void *s1, const void *s2, size_t n),
		strcmp(const char *s1, const char *s2),
		strcoll(const char *s1, const char *s2),
		strncmp(const char *s1, const char *s2, size_t n);
extern size_t	strcspn(const char *s1, const char *s2),
		strspn(const char *s1, const char *s2),
		strxfrm(char *s1, const char *s2, size_t n),
		strlen(const char *s);

#pragma SECTION UNDO
#endif	/* _STRING_INCLUDED_ */
